# lambda：匿名函数的关键字
# 创建了一个匿名函数，里面有两个形参，x、y，返回值是x+y
"""
print(lambda x, y: x + y)       #直接打印会是一个地址值
# 和下面函数是一样的
def sum3(x,y):
    return x+y
print(sum3)     # 直接打印会是一个地址值
"""
# 创建匿名函数，加上括号直接打印
# print(lambda x, y: x + y())     # 会是地址值
# print(lambda x,y:x+y(1,2))      # 会是地址值
# print((lambda x,y:x+y(1+2)))        # 会是地址值

# 赋值一个变量，使用
"""
f = lambda x,y:x+y
print(f(1,2))
# 等于下面的函数
def sum4(x,y):
    return x+y
print(sum4(1,2))
"""

# 匿名函数和内置函数使用
# 比较以下薪资求薪资最高的那个人名  即比较多是value  但取的结果是key
salarics = {
    "long1":300000,
    "zzzzzzzz2":3000,
    "xiaolong3":1000,
    "alalal":2500,
    "alex":4500
}
print(salarics['long1'])
# 使用max来获取，查看能否拿到最高工资的人名，所以这个方法是拿不到最高工资的那个人
# 实例
# print(max([111,222,33333,44]))
"""
比较的是key值，key是字符串，比较的是ascii码值
小写的a 是97，b是98，c是99...
小写的A是65，B是66，C是67..
"""
# print(max(salarics))
"""
# 方法一：
#定义一个函数，来获取字典的value，这样才会比较value
def abvc(name):
    return salarics[name]
# 再使用max内置函数，key参数是按照这个来进行比对
print(max(salarics,key=abvc))
"""

#方法二： 转换成匿名函数（等同于上面实现，不过这次是用的匿名函数）
# print(max(salarics,key = lambda name:salarics[name]))

# 我要比较薪资，返回的要求是人名
print(sorted(salarics,key = lambda name:salarics[name],reverse=True))
"""
匿名函数：
lambda name:salarics[name]
lambda：定义匿名函数的关键字
name：形参，形式参数
salarics：上面定义好的字典
salarics[name]：函数体，每次拿它传入key名称的对应value值

sorted：原地排序，默认是进行升序（升序：由小到大进行排序的意思）
    reverese：默认是False，也就是由小到大排序。传值True就变会成由大到小进行排列
"""

